iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0

屬於自己形狀的Docker Image

昨天學了Dockerfile簡單指令,所以今天來學習如何Build自己形狀的Image!

前置注意

要準備使用 docker build 指令來構建 Docker 映像,首先需要確保你已經有一個撰寫好的 Dockerfile,並且該文件位於你的工作目錄中。接著,你可以使用以下步驟與指令來構建你的映像:

1. 準備專案目錄

  • 確保專案目錄中有 Dockerfile,以及任何相關的資源文件(如配置檔案、腳本等)。
  • 範例目錄結構:
    my-app/
    ├── MyFirstDockerFile.dockerfile
    └── index.html
    

2. 進入專案目錄

在終端或命令行中進入包含 Dockerfile 的專案目錄:

cd /{$path}/my-app

3. 執行 docker build 指令

使用 docker build 指令來構建 Docker 映像。

  • 基本格式:

    docker build -t <映像名稱>:<標籤> .
    
    • -t:指定映像的名稱與標籤(通常為 :latest)。
    • .:指定當前目錄為構建上下文(上下文包括 Dockerfile 和其依賴的文件)。
  • 範例:

    docker build -t my-app-image:latest .
    

docker build 指令的參數解析:

  1. -t(標籤)

    • 功能:為構建的映像指定一個名稱和標籤(tag)。
    • 格式名稱:標籤,如果不指定標籤,默認會使用 :latest
    • 範例
      docker build -t my-app:1.0 .
      
  2. -f(指定 Dockerfile)

    • 功能:如果 Dockerfile 不在當前目錄或者名稱不是 Dockerfile,可以使用 -f 來指定文件位置。
    • 範例
      docker build -t my-app:latest -f ./custom-dockerfile .
      
  3. --no-cache(不使用快取)

    • 功能:禁用構建時的層快取,每次都從頭開始構建。
    • 範例
      docker build --no-cache -t my-app:latest .
      
  4. --build-arg(傳入構建參數)

    • 功能:可以在構建時通過 ARG 指令傳遞變數。
    • 範例
      docker build --build-arg ENV=production -t my-app:latest .
      

實際跑跑Build
Build

構建過程的範例輸出:

執行 docker build 指令後,你會看到類似以下的輸出,顯示每個指令的執行結果:

 => [internal] load build definition from MyFirstDockerFile                                                                             0.0s 
 => => transferring dockerfile: 471B                                                                                                    0.0s 
 => [internal] load metadata for docker.io/library/ubuntu:latest                                                                        2.0s 
 => [auth] library/ubuntu:pull token for registry-1.docker.io                                                                           0.0s 
 => [internal] load .dockerignore                                                                                                       0.0s 
 => => transferring context: 2B                                                                                                         0.0s 
 => [1/4] FROM docker.io/library/ubuntu:latest@sha256:dfc10878be8d8fc9c61cbff33166cb1d1fe44391539243703c72766894fa834a                  0.0s 
 => [internal] load build context                                                                                                       0.0s 
 => => transferring context: 31B                                                                                                        0.0s 
 => CACHED [2/4] RUN apt-get update && apt-get install -y nginx                                                                         0.0s 
 => CACHED [3/4] COPY ./index.html /var/www/html                                                                                        0.0s 
 => CACHED [4/4] WORKDIR /var/www/html                                                                                                  0.0s 
 => exporting to image                                                                                                                  0.0s 
 => => exporting layers                                                                                                                 0.0s 
 => => writing image sha256:88c59df54119ccfc291766dce1fc3f692e46f91bbe5017117093065a6b281dab                                            0.0s 
 => => naming to docker.io/library/my-app-image:latest  

小結:

  1. 準備好 Dockerfile 和所需文件。
  2. 使用 docker build -t <映像名稱>:<標籤> . 指令來構建映像。
  3. 如果需要自定義構建過程,可以使用 -f 指定 Dockerfile,或傳入 --build-arg 等選項。

構建完成後,你可以使用 docker images 查看映像,並使用 docker run 啟動容器。

驗證是否有照Dockerfile建置image

run


上一篇
Day07-Dockfile製作
下一篇
Day09-客製化Docker Image(MySQL)
系列文
從零開始的DevOps猴!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言